package com.example.jdbc_test.web;

import com.example.jdbc_test.util.JDBCUtil;

import java.sql.*;
import java.util.logging.Logger;

/**
 * @ClassName ResultSetMetaDataTest
 * @Description TODO
 * @Author Kx
 * @Date 2025/2/26 9:05
 * @Version 1.0
 */
public class ResultSetMetaDataTest {
    // 创建日志对象
    private static final Logger logger = Logger.getLogger(ResultSetMetaDataTest.class.getName());
    public static void main(String[] args) {
        // 1. 提供查询语句
        String sql = "select id,name,sta_pos as staPos,add_time from staffs";

        // 2. 获取连接对象
        Connection connection = JDBCUtil.getConnection();

        try {
            // 3. 预编译SQL语句
            PreparedStatement pstmt = connection.prepareStatement(sql);
            // 4. 填充参数
            // 5. 执行SQL语句
            ResultSet resultSet = pstmt.executeQuery();

            // 6. 获取结果集元数据对象,实现一些特殊的处理...
            ResultSetMetaData metaData = resultSet.getMetaData();

            // 获取查询的字段数量
            int columnCount = metaData.getColumnCount();
            System.out.println("查询的字段数量为:" + columnCount);

            // 获取查询的字段名称
            for (int i = 1; i < columnCount; i++) {
                // getCatalogName:获取数据库表原字段名称
//                String columnName = metaData.getCatalogName(i);
                // getColumnLabel:获取查询字段的别名
                String columnLabel = metaData.getColumnLabel(i);
                System.out.println("查询的字段名称为:" + columnLabel);
            }
        } catch (SQLException e) {
            logger.severe("预编译SQL语句失败," + e.getMessage());
        }
    }
}
